Conventional data monitoring tools may utilize a deterministic model of a problem domain. The deterministic model may include a pre-defined, closed set of capabilities and possible states of core components of a system, and the possible interactions between such components. The deterministic model may define a list of all possible failures or problems of the systems, for example, based on the pre-defined possible interactions. For example, when a failure occurs (e.g., when a service fails to operate, or operates poorly), the deterministic model may attempt to trace back the failure to a possible cause, in accordance with the pre-defined list of interactions and symptoms.
Unfortunately, the deterministic model may not detect, or may not efficiently detect, failures and other problems in many existing systems, particularly in complex systems, for example, systems handling millions of daily interactions or transactions, systems having dynamic or fast-changing connections between components, systems combining multiple technologies (e.g., Internet Protocol (IP) technology, voice technology, Information Technology (IT), or the like), systems in which new services are introduced at a relatively fast pace, systems having a relatively short shelf life of services, systems that may not allow full testing of a service (e.g., because not all test cases of a new service may be covered), or the like. Furthermore, the deterministic model may not detect a failure that is not explicitly pre-defined. The above may result in, for example, a relatively poor customer experience and/or quality of service, e.g., slow introduction rates for new services, slow adoption rates for new services, increased service costs, or the like. These deficiencies in service quality may also induce direct and indirect costs to the service provider, for example, refunds or other compensation to unsatisfied customers and handling a high number of complaints from customers or business partners.